+ source venv/bin/activate
++ deactivate nondestructive
++ '[' -n '' ']'
++ '[' -n '' ']'
++ hash -r
++ '[' -n '' ']'
++ unset VIRTUAL_ENV
++ unset VIRTUAL_ENV_PROMPT
++ '[' '!' nondestructive = nondestructive ']'
++ '[' linux-gnu = cygwin ']'
++ '[' linux-gnu = msys ']'
++ export VIRTUAL_ENV=/app/venv
++ VIRTUAL_ENV=/app/venv
++ _OLD_VIRTUAL_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
++ PATH=/app/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
++ export PATH
++ '[' -n '' ']'
++ '[' -z '' ']'
++ _OLD_VIRTUAL_PS1=
++ PS1='(venv) '
++ export PS1
++ VIRTUAL_ENV_PROMPT='(venv) '
++ export VIRTUAL_ENV_PROMPT
++ hash -r
+ python -m spacy download en_core_web_sm
Collecting en-core-web-sm==3.8.0
  Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl (12.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.8/12.8 MB 72.2 MB/s eta 0:00:00
Installing collected packages: en-core-web-sm
Successfully installed en-core-web-sm-3.8.0
[38;5;2m✔ Download and installation successful[0m
You can now load the package via spacy.load('en_core_web_sm')
+ pip install https://github.com/medianeuroscience/emfdscore/archive/master.zip
Collecting https://github.com/medianeuroscience/emfdscore/archive/master.zip
  Downloading https://github.com/medianeuroscience/emfdscore/archive/master.zip
     \ 6.5 MB 5.8 MB/s 0:00:01
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'done'
Requirement already satisfied: pandas in ./venv/lib/python3.12/site-packages (from emfdscore==0.0.1) (2.3.0)
Collecting progressbar2 (from emfdscore==0.0.1)
  Downloading progressbar2-4.5.0-py3-none-any.whl.metadata (16 kB)
Collecting nltk (from emfdscore==0.0.1)
  Downloading nltk-3.9.1-py3-none-any.whl.metadata (2.9 kB)
Requirement already satisfied: numpy in ./venv/lib/python3.12/site-packages (from emfdscore==0.0.1) (1.26.4)
Requirement already satisfied: click in ./venv/lib/python3.12/site-packages (from nltk->emfdscore==0.0.1) (8.2.1)
Requirement already satisfied: joblib in ./venv/lib/python3.12/site-packages (from nltk->emfdscore==0.0.1) (1.5.1)
Requirement already satisfied: regex>=2021.8.3 in ./venv/lib/python3.12/site-packages (from nltk->emfdscore==0.0.1) (2024.11.6)
Requirement already satisfied: tqdm in ./venv/lib/python3.12/site-packages (from nltk->emfdscore==0.0.1) (4.67.1)
Requirement already satisfied: python-dateutil>=2.8.2 in ./venv/lib/python3.12/site-packages (from pandas->emfdscore==0.0.1) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in ./venv/lib/python3.12/site-packages (from pandas->emfdscore==0.0.1) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in ./venv/lib/python3.12/site-packages (from pandas->emfdscore==0.0.1) (2025.2)
Requirement already satisfied: six>=1.5 in ./venv/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas->emfdscore==0.0.1) (1.17.0)
Collecting python-utils>=3.8.1 (from progressbar2->emfdscore==0.0.1)
  Downloading python_utils-3.9.1-py2.py3-none-any.whl.metadata (9.8 kB)
Requirement already satisfied: typing_extensions>3.10.0.2 in ./venv/lib/python3.12/site-packages (from python-utils>=3.8.1->progressbar2->emfdscore==0.0.1) (4.14.0)
Downloading nltk-3.9.1-py3-none-any.whl (1.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 73.6 MB/s eta 0:00:00
Downloading progressbar2-4.5.0-py3-none-any.whl (57 kB)
Downloading python_utils-3.9.1-py2.py3-none-any.whl (32 kB)
Building wheels for collected packages: emfdscore
  Building wheel for emfdscore (pyproject.toml): started
  Building wheel for emfdscore (pyproject.toml): finished with status 'done'
  Created wheel for emfdscore: filename=emfdscore-0.0.1-py3-none-any.whl size=1499144 sha256=b2d1c627adbdb01e31eae928c3ba3bf94ba2c7886539c431daebcc8a0e26447d
  Stored in directory: /tmp/pip-ephem-wheel-cache-67_c658q/wheels/9e/10/28/3f89627c13483d6f84088c657370205ade2ab70e51c45287f4
Successfully built emfdscore
Installing collected packages: python-utils, nltk, progressbar2, emfdscore

Successfully installed emfdscore-0.0.1 nltk-3.9.1 progressbar2-4.5.0 python-utils-3.9.1
+ Rscript scripts/1_get_data.R
Loading required package: NLP
Loading required package: tm
When publishing work using the Manifesto Corpus, please make sure to cite it correctly and to give the identification number of the corpus version used for your analysis.

You can print citation and version information with the function mp_cite().

Note that some of the scaling/analysis algorithms provided with this package were conceptually developed by authors referenced in the respective function documentation. Please also reference them when using these algorithms.

Attaching package: 'arrow'

The following object is masked from 'package:utils':

    timestamp

here() starts at /app
[1] "Script now downloads from the Manifesto corpus"
Connecting to Manifesto Project DB API... 
Connecting to Manifesto Project DB API... corpus version: 2024-1 
Connecting to Manifesto Project DB API... corpus version: 2024-1 
Connecting to Manifesto Project DB API... corpus version: 2024-1 
Your query resulted in 1339 requested document items containing corpus metadata. Of these items 14 could not be retrieved (reasons: 10 having no real documents coded (see progtype 3 and 99), 4 having no machine-readable texts).
Connecting to Manifesto Project DB API... corpus version: 2024-1 
Your query resulted in 1339 requested document items containing corpus metadata. Of these items 281 could not be retrieved (reasons: 10 having no real documents coded (see progtype 3 and 99), 4 having no machine-readable texts, 267 having no translations).
[1] "Saved all, done."
+ Rscript scripts/2b_mfd_original_lang.R
Package version: 4.2.0
Unicode version: 15.1
ICU version: 74.2
Parallel computing: 16 of 16 threads used.
See https://quanteda.io for tutorials and examples.

Attaching package: 'arrow'

The following object is masked from 'package:quanteda':

    dictionary

The following object is masked from 'package:utils':

    timestamp

here() starts at /app

Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

note: ignoring undefined categories:
  NA for behoud*
  NA for samenwerk*
  NA for nation*
note: ignoring undefined categories:
  13 for verletz*
  13 for missachten*
  0 for unverhaeltnis*
  12 for einzeln
  12 for individ*
+ python scripts/2a_mfd.py
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data]   Unzipping corpora/stopwords.zip.
NLTK stopwords missing, downloading now.
Working on EMFD
Working on MFD
Working on MFD2
+ python scripts/2c_ddr.py
Scoring all English translations

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [58:00<00:00, 276.24it/s]
Scoring all sentences in en.

  0%|          | 0/221336 [00:00<?, ?it/s]
100%|██████████| 221336/221336 [12:35<00:00, 293.11it/s]
Scoring all sentences in de.

  0%|          | 0/160515 [00:00<?, ?it/s]
100%|██████████| 160515/160515 [07:39<00:00, 349.65it/s]
Scoring all sentences in nl.

  0%|          | 0/201926 [00:00<?, ?it/s]
100%|██████████| 201926/201926 [09:06<00:00, 369.58it/s]
Scoring all sentences in es.

  0%|          | 0/377678 [00:00<?, ?it/s]
100%|██████████| 377678/377678 [24:15<00:00, 259.40it/s]
+ python scripts/2d_ccr.py
/app/venv/lib/python3.12/site-packages/sentence_transformers/SentenceTransformer.py:649: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  sentences_sorted = [sentences[idx] for idx in length_sorted_idx]
Scoring english sentences with english embeddings

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [59:48<00:00, 267.93it/s]
/app/venv/lib/python3.12/site-packages/sentence_transformers/SentenceTransformer.py:649: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  sentences_sorted = [sentences[idx] for idx in length_sorted_idx]
Scoring multilingual sentences with english embeddings

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:38:01<00:00, 163.48it/s]
/app/venv/lib/python3.12/site-packages/sentence_transformers/SentenceTransformer.py:649: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
  sentences_sorted = [sentences[idx] for idx in length_sorted_idx]
Scoring multilingual sentences with multilingual embeddings

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:37:10<00:00, 164.89it/s]
+ python scripts/2e_moralbert.py
Processing MFT: care

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:23<00:00, 155.00it/s]
Processing MFT: harm

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:22<00:00, 155.00it/s]
Processing MFT: fairness

  0%|          | 0/961455 [00:00<?, ?it/s]
 100%|██████████| 961455/961455 [1:43:28<00:00, 154.87it/s]
Processing MFT: cheating

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:22<00:00, 155.01it/s]
Processing MFT: loyalty

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:24<00:00, 154.96it/s]
Processing MFT: betrayal

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:22<00:00, 155.00it/s]
Processing MFT: authority

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:28<00:00, 154.86it/s]
Processing MFT: subversion

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:22<00:00, 155.00it/s]
Processing MFT: purity

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:30<00:00, 154.82it/s]
Processing MFT: degradation

  0%|          | 0/961455 [00:00<?, ?it/s]
100%|██████████| 961455/961455 [1:43:27<00:00, 154.89it/s]
+ python scripts/3_run_analysis.py
+ mkdir -p graphs/main_article/
+ Rscript scripts/4a_regression.R

Attaching package: 'lubridate'

The following objects are masked from 'package:base':

    date, intersect, setdiff, union


Attaching package: 'arrow'

The following object is masked from 'package:lubridate':

    duration

The following object is masked from 'package:utils':

    timestamp

here() starts at /app

Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union


Attaching package: 'reshape2'

The following object is masked from 'package:tidyr':

    smiths


Attaching package: 'data.table'

The following objects are masked from 'package:reshape2':

    dcast, melt

The following objects are masked from 'package:dplyr':

    between, first, last

The following objects are masked from 'package:lubridate':

    hour, isoweek, mday, minute, month, quarter, second, wday, week,
    yday, year

Loading required package: Matrix

Attaching package: 'Matrix'

The following objects are masked from 'package:tidyr':

    expand, pack, unpack


Attaching package: 'kableExtra'

The following object is masked from 'package:dplyr':

    group_rows

Version:  1.39.4
Date:     2024-07-23
Author:   Philip Leifeld (University of Manchester)

Consider submitting praise using the praise or praise_interactive functions.
Please cite the JSS article in your publications -- see citation("texreg").

Attaching package: 'texreg'

The following object is masked from 'package:tidyr':

    extract

[1] 479
[1] 81
[1] "ccr_en_to_en"
The table was written to the file 'graphs/tables/regression_appendix/translated_ccr_en_to_en_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/translated_ccr_en_to_en_vice.tex'.

[1] "ddr"
The table was written to the file 'graphs/tables/regression_appendix/translated_ddr_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/translated_ddr_vice.tex'.

[1] "mfd"
The table was written to the file 'graphs/tables/regression_appendix/translated_mfd_virtue.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/translated_mfd_vice.tex'.

[1] "mfd2"
The table was written to the file 'graphs/tables/regression_appendix/translated_mfd2_virtue.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/translated_mfd2_vice.tex'.

[1] "emfd"
The table was written to the file 'graphs/tables/regression_appendix/translated_emfd_virtue.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/translated_emfd_vice.tex'.

[1] "moralbert"
The table was written to the file 'graphs/tables/regression_appendix/translated_moralbert_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/translated_moralbert_vice.tex'.

Warning messages:
1: Removed 4 rows containing missing values or values outside the scale range
(`geom_point()`). 
2: Removed 4 rows containing missing values or values outside the scale range
(`geom_segment()`). 
Warning messages:
1: Removed 4 rows containing missing values or values outside the scale range
(`geom_point()`). 
2: Removed 4 rows containing missing values or values outside the scale range
(`geom_segment()`). 
[1] "ccr_multi_to_multi"
The table was written to the file 'graphs/tables/regression_appendix/es_ccr_multi_to_multi_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/es_ccr_multi_to_multi_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_ccr_multi_to_multi_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_ccr_multi_to_multi_vice.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/de_ccr_multi_to_multi_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/de_ccr_multi_to_multi_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_ccr_multi_to_multi_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_ccr_multi_to_multi_vice.tex'.

[1] "ccr_multi_to_en"
The table was written to the file 'graphs/tables/regression_appendix/es_ccr_multi_to_en_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/es_ccr_multi_to_en_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_ccr_multi_to_en_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_ccr_multi_to_en_vice.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/de_ccr_multi_to_en_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/de_ccr_multi_to_en_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_ccr_multi_to_en_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_ccr_multi_to_en_vice.tex'.

[1] "ddr"
The table was written to the file 'graphs/tables/regression_appendix/es_ddr_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/es_ddr_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_ddr_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_ddr_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/de_ddr_virtue.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/de_ddr_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_ddr_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_ddr_vice.tex'.

[1] "mfd"
The table was written to the file 'graphs/tables/regression_appendix/es_mfd_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/es_mfd_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_mfd_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/en_mfd_vice.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/de_mfd_virtue.tex'.

boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
boundary (singular) fit: see help('isSingular')
The table was written to the file 'graphs/tables/regression_appendix/de_mfd_vice.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_mfd_virtue.tex'.

The table was written to the file 'graphs/tables/regression_appendix/nl_mfd_vice.tex'.

+ Rscript scripts/4b_main_figures_tables.R

Attaching package: 'arrow'

The following object is masked from 'package:utils':

    timestamp


Attaching package: 'dplyr'

The following objects are masked from 'package:data.table':

    between, first, last

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union


Attaching package: 'kableExtra'

The following object is masked from 'package:dplyr':

    group_rows


Attaching package: 'lubridate'

The following objects are masked from 'package:data.table':

    hour, isoweek, mday, minute, month, quarter, second, wday, week,
    yday, year

The following object is masked from 'package:arrow':

    duration

The following objects are masked from 'package:base':

    date, intersect, setdiff, union

here() starts at /app

Attaching package: 'reshape2'

The following object is masked from 'package:tidyr':

    smiths

The following objects are masked from 'package:data.table':

    dcast, melt

Loading required package: Matrix

Attaching package: 'Matrix'

The following objects are masked from 'package:tidyr':

    expand, pack, unpack

Warning message:
Using ragg device as default. Ignoring `type` and `antialias` arguments 
Warning message:
Using ragg device as default. Ignoring `type` and `antialias` arguments 
`summarise()` has grouped output by 'Method', 'Pole'. You can override using
the `.groups` argument.
Using index, pole as id variables
Using index, pole as id variables
Warning messages:
1: Removed 1 row containing missing values or values outside the scale range
(`geom_point()`). 
2: Removed 1 row containing missing values or values outside the scale range
(`geom_point()`). 
Warning message:
Using ragg device as default. Ignoring `type` and `antialias` arguments 
Warning message:
Removed 1 row containing missing values or values outside the scale range
(`geom_point()`). 
Warning message:
Removed 1 row containing missing values or values outside the scale range
(`geom_point()`). 
Warning messages:
1: Removed 4 rows containing missing values or values outside the scale range
(`geom_point()`). 
2: Removed 4 rows containing missing values or values outside the scale range
(`geom_segment()`). 
Warning messages:
1: Removed 4 rows containing missing values or values outside the scale range
(`geom_point()`). 
2: Removed 4 rows containing missing values or values outside the scale range
(`geom_segment()`). 
+ Rscript scripts/4c_cmp_codes.R

Attaching package: 'lubridate'

The following objects are masked from 'package:base':

    date, intersect, setdiff, union


Attaching package: 'arrow'

The following object is masked from 'package:lubridate':

    duration

The following object is masked from 'package:utils':

    timestamp

here() starts at /app

Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union


Attaching package: 'reshape2'

The following object is masked from 'package:tidyr':

    smiths


Attaching package: 'data.table'

The following objects are masked from 'package:reshape2':

    dcast, melt

The following objects are masked from 'package:dplyr':

    between, first, last

The following objects are masked from 'package:lubridate':

    hour, isoweek, mday, minute, month, quarter, second, wday, week,
    yday, year

Loading required package: Matrix

Attaching package: 'Matrix'

The following objects are masked from 'package:tidyr':

    expand, pack, unpack


Attaching package: 'kableExtra'

The following object is masked from 'package:dplyr':

    group_rows

Classes and Methods for R originally developed in the
Political Science Computational Laboratory
Department of Political Science
Stanford University (2002-2015),
by and under the direction of Simon Jackman.
hurdle and zeroinfl functions by Achim Zeileis.
[1] "ccr_multi_to_multi"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "ccr_multi_to_en"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "ddr"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "mfd"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "ccr_en_to_en"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "ddr"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "mfd"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "emfd"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
[1] "moralbert"
fitting null model for pseudo-r2
fitting null model for pseudo-r2
+ python scripts/5_appendix.py
